<?php
declare (strict_types = 1);

namespace app\admin\model\admin;

use app\BaseModel;
use think\Model;


/**
 * @mixin \think\Model
 */
class BaseUser extends BaseModel
{
    // 默认数据库连接
    protected $connection = 'mysql';
    // 主键列
    protected $pk = 'id';
    // 表名称
    protected $name = 'admin_user';  
    // json 字段
    protected $json = [
        'role_ids',
    ];
    // 强制转换为数组
    protected $jsonAssoc = true;


    /**
     * 定义自动转换的数据类型
     * @var array
     */
    protected $type = [

    ];
    /**
     * 修改器 密码
     * 提交的密码自动解密并进行加密
     *
     * @param $value
     * @return string
     */
    public function setPasswordAttr($value): string
    {
        return password_hash($value, PASSWORD_DEFAULT);
    } 



    /**
     * 自动填充
     * @param $model
     * @return void
     */
    private static function autoFill($model){

    }
    
    // 自动填充
    public static function onBeforeInsert(Model $model): void
    {
        // 这里必须有这一句，因为其父类中定义了 onBeforeInsert
        parent::onBeforeInsert($model);
        self::autoFill($model);
    }

    public static function onBeforeUpdate(Model $model): void
    {
        // 这里必须有这一句，因为其父类中定义了 onBeforeUpdate
        parent::onBeforeUpdate($model);
        self::autoFill($model);
    }
    
    // end
}
    